![]() プログラマブル論理ファブリック
专利摘要:
本発明はプログラマブル論理回路に関するものである。本発明のプログラマブル論理回路は、複数のプログラマブル論理要素及び複数のプログラマブルインターコネクト手段を備えている。また、本発明のプログラマブル論理回路は、前記論理要素及び前記インターコネクト手段の設定を保存するためのメモリ手段をも備えている。そして、前記メモリ手段は、前記各論理要素の多数の異なる設定を保存するように形成及び構成されていることを特徴としている。 公开号:JP2011514065A 申请号:JP2010548167 申请日:2009-02-25 公开日:2011-04-28 发明作者:ビート,ロバート,チャールズ 申请人:シリコン ベーシス リミテッド; IPC主号:H03K19-173
专利说明:
[0001] 本発明は、プログラマブル(プログラム可能な)論理回路に関する。特に限定されないが、本発明は、プログラマブル論理回路において実行可能な論理演算の密度の増加に関する。] 課題を解決するための手段 [0002] プログラマブル論理回路は、時に論理ブロックとして記述される論理要素(素子)(LE)からなり、任意の論理関数(機能)を実行し、且つ、論理要素間の接続の全て(又は大部分)を設立するように設けられるルーティング(経路)ネットワークを実行するように構成される。論理要素及びルーティングの設定は、設定された回路に近接するメモリ(一般的にはスタティック・ランダム・アクセス・メモリ(SRAM))内に保持される。] [0003] フィールド・プログラマブル・ゲート・アレイ(FPGA)は、プログラマブル論理回路の形態をとる。FPGAは、プログラマブルLE及びプログラマブルインターコネクト(接続部)を含む半導体装置である。LEは、基本的な論理ゲート又は加算器のようなより複雑な算術関数を実行するようにプログラム可能である。ほとんどのFPGAでは、LEはまたフリップ・フロップ(flip−flop)のようなメモリ要素を含み、いくつかは小さいブロックのメモリとして使用可能である。LE及びインターコネクトは、FPGAの製造後、任意の論理関数を実行するために顧客又は設計者によってプログラム可能である。] [0004] 本発明の第1の実施例によれば、プログラマブル論理回路(PLC)は、複数のプログラマブル論理要素及び複数のプログラマブルインターコネクト手段と、論理要素及びインターコネクト手段の設定を保存するためのメモリ手段とを備えており、前記メモリ手段は、前記各論理要素の多数の異なる設定を保存するように形成及び構成されている。好ましくは、メモリ手段は前記各インターコネクト手段の多数の異なる設定を保存するように形成及び構成されている。] [0005] このような装置は、前記各論理要素の異なる設定でプログラムされたとき、複数の設定間の(論理要素及び好ましくはルーティングも含む)ファブリック(fabric、基礎構造)の固定リソース(fixed resource)を時分割(タイムシェアリング)することによって、論理密度を増加させるという利点を有する。そして、本発明の第2の実施例によれば、プログラマブル論理回路(PLC)は、複数の論理要素及び複数のインターコネクト手段と、論理要素及びインターコネクト手段の設定を保存するためのメモリ手段と、を備えており、前記各論理要素の多数の異なる設定が前記メモリ内に保存される。好ましくは、メモリ手段は、前記各インターコネクト手段の多数の異なる設定をも保存する。] [0006] 使用の際、一般に、外部システムクロック信号が、PLCのファブリック全体に適用される。好ましくは、PLCは、PLCに適用されたシステムクロック信号を修正クロック信号に変換するための手段をさらに含む。好ましくは、前記手段は、PLCのシステムクロックサイクル(周期)を所定数のサブサイクル(下位周期)へと分割する。以降、これらのサブサイクルを「ファブリックサイクル」と呼称し、修正クロック信号を「ファブリッククロック信号」として呼称する。同様に、以降、システムクロック信号をファブリッククロック信号へと変換させるための手段は、ファブリッククロック手段と呼称する。] [0007] PLCは、ここではシステムクロックサイクルは4つのファブリックサイクルに分割される場合には、1つのシステムクロックサイクル内の各ファブリッククロックサイクルに例えば、0,1,2,3の数字に割り当てられるように形成及び構成される。好適には、前記論理要素のそれぞれ異なる保存された設定は、それぞれのファブリックサイクル番号に関連付けられている。] [0008] 好ましくは、PLCは、特定の設定に関連付けられたファブリックサイクル番号に関するファブリックフェーズ(位相)信号によって、論理要素及びインターコネクト手段の設定を保存するメモリ手段をアドレス指定するように形成及び構成されており、そのファブリックサイクルの設定を読み取って相関する論理要素をそれに応じて設定する。] [0009] 例えば、インターコネクト手段は、インターコネクトブロックを備える。好ましくは、前記インターコネクトブロックのそれぞれ異なる保存された設定が各ファブリックサイクル番号に相関されて、PLCは、ファブリックサイクル番号に関するファブリックフェーズ(位相)信号によって、インターコネクトブロックの設定を保存するメモリ手段のアドレスを指定するように形成及び構成されており、ファブリックサイクルに相関する前記インターコネクトブロックの設定を読み取ってファブリックサイクルのインターコネクトブロックをそれに応じて設定する。] [0010] 論理要素及びインターコネクトブロックの設定を保存するメモリ手段は、スタティック型(静的)設定メモリを備える。その上、メモリ手段はデコーダをさらに備える。] [0011] 論理要素は、便宜上、ルックアップ(参照)テーブル(LUT)を備えうる。LUTは、基本的に、アドレスが入力として働き、データ出力が論理出力を提供する小メモリである。つまり、4入力、1出力のLUT(4:1LUT)は、実際に、16エントリ(入力)、1ビット幅のメモリである。本発明の時分割スキーム(方式)では、システム内のLUTは、 好ましくは、ファブリックサイクルのLUT構成を提供する各ファブリックサイクルのエントリを有する記憶(ストレージ)メモリを有する。] [0012] 当然ながら、各ファブリックサイクル内に定められる論理は、他の任意のファブリックサイクルにその出力を送信可能であることを必要とする。特定のLUTの入力が直前のファブリックサイクルによって提供されず、当該入力が干渉するファブリックサイクル内の別のLUTによって必要とされている場合、追加の記憶手段が、それが要求されるまでその値を保存するように提供される必要がある。即ち、この目的として、PLCは好ましくは、例えば、LUTにつき、1以上の追加の記憶レジスタで形成されるバッファ(緩衝)手段をさらに含む。] [0013] 好ましくは、ファブリッククロック手段は、例えば、メッシュ有効化オシレーション(Mesh−enabled oscillation)を使用して、PLCのファブリックに亘って分配される多数のクロックノードを備える。] [0014] 任意に、PLCはファブリッククロック手段が、省電力機構として使用されるように便宜上構成されうる。例えば、低電圧振幅(LVS)のような低電圧信号伝達スキームが使用されうる。] [0015] 本発明の第3の実施例によれば、複数の論理要素及び複数のインターコネクト手段と、論理要素及びインターコネクトの構成を保存するためのメモリ手段と、を備えるプログラマブル論理回路(PLC)の演算方法であって、当該方法は、前記メモリ手段内の前記各論理要素の多数の異なる設定保存するステップを含む。好ましくは、前記各インターコネクト手段の多数の異なる設定も前記メモリ手段内に保存される。] 図面の簡単な説明 [0016] 4つのゲート装置を有するパイプ記憶回路の一例の図。 本発明の一実施形態に従う、入力回路の図。 パイプライン型の2サイクルの例示図。 時分割方式のルックアップテーブル(LUT)の図。 LUTの入力マルチプレクサの選択信号を制御することによって、LUT入力及びバッファ入力を時分割することを説明する図。 従来のプログラマブルインターコネクトブロックの図。 本発明の一実施形態に従う、時分割方式のプログラマブルインターコネクトの図。 インターコネクトブロック内の可能なルーティング階層を示す図。 本発明において利用されるクロックノードの図。 fクロック信号がどのようにfフェーズ信号に関係するかを示す図。 16クロックノードのメッシュを概略的に示す図。 2つの論理ブロック(LB)間の2×2のルート接続を概略的に表す図。 低電圧振幅(LVS)2:1多重通信回路を示す図。 ルーティングを介したLUTからセンス増幅器への典型的な信号経路の図。 2つのフェーズルーティングスキームにおける様々な信号を示すグラフであって、横軸の時間に対して縦軸に信号電圧をプロットしたグラフ。 4つのフェーズルーティングスキームにおける様々な信号を示すグラフであって、横軸の時間に対して縦軸に信号電圧をプロットしたグラフ。 入力設定メモリ列内の基本回路の図。 デコーダを使用する実施形態における選択ライン発生を示す図。 複数の選択ラインを有する実施形態を示す図。 最上位の設定メモリを示す図。 別の最上位のルート設定メモリを示す図。 様々な回路入力で使用されるセンス増幅器を示す図。 アクティブローのセンス増幅イネーブル信号(sae_gen)を発生させるために用いられる回路の図。 入力設定メモリの最上位の図。 時間に対してプロットされた電圧における様々な制御信号のタイミング図。 スタティック設定メモリを使用する実施形態における、設定メモリセルの図。 図21のスタティック設定メモリとあわせて使用される4エントリマルチプレクサ回路メモリの図。 スタティック設定メモリエントリ回路の図。 図21のスタティック設定メモリで使用するように構成されている図19(a)のsae_gen回路の修正版の図。 スタティック入力設定メモリの最上位の図。 図23(a)の回路の省電力版を示す図。 静的デコードされたデータセルの図。 時間に対して様々な信号(V)としてプロットした、2フェーズインプランテーション内のスタティック回路のタイミングを表すグラフを示す図。 本発明に使用するためのセンス増幅器(SA)の図。 LUT4の低電圧作動振幅(LVDS)スキームを示す図。 デコーダを使用する図28の回路に代替可能な回路アーキテクチャを示す図。 LUTデコーダ回路の図。 4フェーズルーティングスキームの論理ブロック内のLUT配列の図。 本発明に使用されるバッファアーキテクチャの図。 拡張ルックアップテーブルの概略図。 図33の拡張ルックアップテーブルでのLUT出力選択を示す図。 複階層拡張ルックアップテーブルの図。] 図21 図28 図33 実施例 [0017] フィールドプログラマブルゲートアレイ(FPGA)のようなプログラマブル論理回路の基本アーキテクチャ(構造)は、設定可能な論理要素又はブロック(LB)及びルーティング(経路)チャンネルのアレイから構成される。古典的なFPGA論理ブロックは、4入力ルックアップテーブル(LUT)と、フリップ・フロップとから構成される。論理ブロックは、4つのLUTの入力と、フリップ・フロップへのクロック信号入力とを有する。ルーティングチャンネルはしばしば、プログラマブルインターコネクトブロックを含む。FPGA内のメモリセル(例えばSRAMセル)における設定ビットとして保存された設定データは、LB及びそれらの間のルーティング接続の論理演算を定める。FPGAの製造者又はカスタマー/設計者は、通常、FPGA製造者による権利で保護された「place−and−route」ソフトウェアを使用して、FPGAをプログラムすることができる。] [0018] 本発明は、複数の設定間のファブリック(論理要素及びルーティング)の固定リソースを時分割することによって、論理密度を増加させる。 アーキテクチャの重要な点は、 1)使用の際、システムクロック信号は、一般的にファブリック全体に、又は、プログラマブル論理回路のサブセクションに適用される。本発明では、各システムクロックサイクルは、ファブリックサイクルとして呼称される所定数のサブサイクルに分割される。システムクロックサイクル内の各ファブリッククロックサイクルには、システムクロックサイクルが4つのファブリックサイクルに分割されるところでは、例えば0、1、2、3の番号が割り当てられる。 2)論理演算及びプログラマブル論理回路の接続を定める1組の設定ビットを有する代わりに、多数の異なる設定が、システムサイクル内のファブリックサイクル番号に関して後述するファブリックフェーズ(「fフェーズ」と称する)信号によってアドレス指定されるメモリ(「設定メモリ」と称する)内に定められている。 3)各ファブリックサイクルにおいて定められた論理は、他のファブリックサイクルにその出力を送信可能である必要がある。] [0019] 例えば、図1の回路において、(本発明に従う)時分割は、回路中の全てのゲートP、Q、R、Sを1つの論理回路内に包含させ、明らかに領域を節約するだけでなく電力も節約する。なぜなら、論理要素間のルートが削減されるからである。] 図1 [0020] システムサイクル内のファブリックサイクル数は、システム内の時分割の度合いを定める。これは、時分割値(TSV)と呼ばれる。図1は、4のTSVを有する回路を例示する。典型的なアーキテクチャは、例えば最確数が8又は16であるように、実際にはより高いTSVを有する。] 図1 [0021] (入力バッファ) 論理要素の設定に保持されたゲートへの入力が先行するファブリックサイクルによって与えられず、且つ、当該入力が干渉するサイクル内の別のゲートによって必要とされているところでは、必要となるまで値を保存するように追加の状態(ステート)が提供される必要がある。この追加の記憶(ストレージ)レジスタがバッファと呼ばれる。入力につき提供されるバッファの数は、アーキテクチャの重要な点である。入力を駆動するように選択されたバッファは、ファブリックサイクル(時にfサイクルと呼称)内のそれが必要とされる入力に多重送信される。] [0022] 例えば、図1のゲートPからゲートSへの接続は、ファブリックサイクルPの端部で値をバッファリング(バッファに格納)すること、及び、ファブリックサイクルSの始まりでのバッファ内の値にアクセスすることによって実行される。] 図1 [0023] 図2に、論理要素への通常の入力構造を示す。入力マルチプレクサ10は、特定のサイクル内のどのルートから入力を得るかを選択する。値は入力状態の記録要素12内にキャプチャ(捕捉)される。先行のfサイクルの前に、入力がfサイクルから送られる場合、8つのバッファ(Buf0〜7)の1つ(図2ではそのうちの1つの14のみが詳細に示される)からそれが生じ、そのバッファが代わりに選択される。] 図2 [0024] (システムサイクル境界) 図3の、TSV=4のパイプライン型の2つのサイクルを例として考えてみよう。パイプラインが完全にロード(搭載)状態であると想定しよう。サイクルn内のゲートP,Q,R,Sが、データセットNで演算し、サイクルn+1内のゲートT,U,V,Wがデータセットnで演算し、且つ、ゲートP,Q,R,SがデータセットN+1で演算する。] 図3 [0025] また、各サイクル内の4つの全てのゲートが、同じLEにマッピング(位置付け)(即ち、LE1(図示せず)へのゲートP/Q/R/S及びLE2(図示せず)へのT/U/V/Wのマッピング)されることを想定しよう。] [0026] ファブリックサイクル(fサイクル)は、0からTSV−1にカウントされ、TSV−1の後に0にラップバック(wrap back)される。カウントが0にラップバックすると、システムクロックの立上り(エッジ)は、fサイクルクロックの立上り(エッジ)で発生する。] [0027] システム内に明確なレジスタはない。状態記憶は、入力又はバッファ状態レジスタ内で実行される。図3の印の付いた接続において、ネットAはシステムクロックの境界に登録されていないが、その値はLE2のfサイクル1入力内に保存されるか、あるいは、LE2によってアクセス可能なバッファ内に保存される。] 図3 [0028] 制限が存在する。即ち、ネットBは、fサイクル0のゲートPからfサイクル3のゲートWへの接続を試行している。] [0029] しかしながら、ネットBをLE2のfサイクル3に保存しようとする場合、それは次のパイプ段階の最新サイクル(例えば、所望するデータセットNの代わりにデータセットN−1)内でピックアップされる。これは次の制限を設ける。つまり、TSVのfサイクル以上を先に接続することができない。] [0030] ネットBの接続は、その値をバッファリングすることによって実行される。] [0031] (LUT) FPGAアーキテクチャは、設定可能な論理で構築される。当該論理は、任意の組の入力に有効な論理関数を実行するようにプログラム可能である。ルックアップテーブル(LUT)は、設定可能な論理要素の一般的な形態である。基本的にLUTは、アドレスが入力として働き且つデータ出力が論理出力として働く小メモリである。即ち、図4(a)に示した、4入力A,B,C,Dで1出力のLUT(4:1LUT)は、実際に、16エントリ1ビット幅メモリである。] [0032] 本願の時分割スキームにおいて、システム内のLUTは、各ファブリックサイクルのエントリを有する記憶メモリ22(設定メモリ22)を有し、該エントリは当該サイクルのためのLUT設定を提供する。(ファブリックサイクル数に関する)ファブリックフェーズ信号24は、サイクル内のLUTを設定するように、どのエントリが読み取られるのかを制御する。] [0033] 時分割LUTの演算は、パイプラインされることが可能であり、即ち、設定メモリ22は、ファブリックを先行するファブリックサイクル内で読み取り可能であり、LUT20の設定に必要である。別の方法は、2又は4フェーズ論理スキームを使用することである。2フェーズスキームのために、(以下のセクションで2及び4フェーズルーティングについて説明するが)設定メモリ22は、フェーズB内の設定データを提供することがすぐにできるように、フェーズA内で読み取られている。] [0034] (時分割入力) LUT20への入力及びバッファBuf0−7への入力もまた時分割される。図4(b)に示すとおり、これは、設定メモリ25からの入力マルチプレクサ10の選択信号を制御することによって達成される。] [0035] 設定メモリ25の幅は、入力マルチプレクサ10の需要に依存する。例えば、1つのホットで完全にエンコードされたもの、又は、組み合わせたものもしくは多段のもの(例えば4:1マルチプレクサの2レベルツリー)である。] [0036] (論理ブロック) FPGAアーキテクチャはしばしばLUTをブロックにグループ化する。これらブロック内で、LUTは高度に相互連結されている。論理ブロック(LB)は0から3の4つの入力LUTで成ると定義する。] [0037] (ルーティング) ルーティングもまた時分割される。従来のセグメント化されたFPGAルーティングスキームでは、プログラマブルインターコネクトブロック(プログラム可能な内部接続ブロック)とはルートの接続性が定められるところである。図5に示される従来のプログラマブルインターコネクトブロックでは、6つのメモリセル30が、マンハッタン(manhattan)ルート(北N、東E、南S、西W)間の全ての可能な接続を定めるのに必要である。図5に、パストランジスタを使用するルーティングアーキテクチャを示す。これは、信号が両方向に伝わることを可能とする。双方向性のバッファアーキテクチャが代替的に使用可能である。] 図5 [0038] 図5のスキームを時分割アーキテクチャに変換するためには、TSVエントリNWc,NEc,WEc,NSc,SWc,SEcを有する設定メモリ35がメモリセルに取って代わる必要がある。これは図6に示されている。また、設定メモリ35のアクセスを、ルーティングの演算でパイプライン化することができる。] 図5 図6 [0039] ルートはLUT入力に接続可能である必要があり、且つ、LUT出力もルートに接続可能である必要がある。図7は、4つのプログラマブルインターコネクトブロック(PiB)36,37,38,39を含むこのような構成を示す。ここで、Q=各LUT出力(O/p)である。マルチプレクサ40は、LUT入力の特定のルートを選択することに使用される。] 図7 [0040] ルーティングはしばしば、(例えば1論理ブロック離れた)短距離、又は、(例えば6論理ブロック離れた)長距離を接続するように、階層に分割される。図7は、1つの階層又はインターコネクトしている組の階層を示す。複数のルート組は次の表のように使用可能である。] 図7 [0041] さらなる接続は、ルーティング階層間に提供される。例えば、by1をby2ルート又はby6ルートに接続する。] [0042] LUT入力マルチプレクサ10の大きさ(幅)を制限するために、それらが接続するルートの数が制限される。可能な限り多くのルートが利用可能なLUTに到達可能であるように、利用可能なルートはLUT内の4つの入力A,B,C,Dに亘って広がる。] [0043] (クロッキング) システムクロック信号(システムクロック)は、プログラマブル論理回路のファブリック全体に亘って駆動される必要がある。ファブリッククロック信号(ファブリッククロック)はまた、プログラマブル論理回路のファブリック全体に亘って同期して駆動される必要がある。このようなクロックは高周波数を有する必要がある。例えば、16のTS値を有するアーキテクチャ上の125Mhzの典型的なシステムクロックは、2Ghzのファブリッククロックを与える。大きいチップ上に歪みの少ない高周波数クロックを分配することは可能であるが難しい。] [0044] 確実にファブリッククロックを分配する別の方法は、それをローカル(局所的)に自動的に時間制御、且つ、オシレーション(発振)をメッシュイネーブル(mesh−enable)にさせることである。本発明はこの技術を使用する。このようなシステムは、クロックノードのアレイ(又は「メッシュ(mesh)」)60(図9参照)によって構成される。1つのクロックノード50は図8(a)に示されている。] 図9 [0045] このノード50において、遅延Dを通したタイミングは、標準LUTのそれ(タイミング)に適合する。Dの出力は、全ての方向N,E,S,Wに向けて周囲のクロックノードに向けて駆動される。クロック信号はまた、クロックノードのローカルLUTにファブリッククロックを提供するようにバッファリングされる。] [0046] クロック信号51,52,53,54はまた、全ての方向において、クロックノード50によって、隣接するクロックノードから受け取られる。ノードにおける次のオシレーションは、全ての周囲のクロックノードによってイネーブル(有効)にされたときにだけ先に進むことができる。従って、最も遅い隣接クロックノードが各クロックノードの周波数を設定する。なぜなら、クロックノード50自体が最も遅い周波数を有しているので、1つのクロック信号N’も不完全に任意の方向に駆逐されて、その後に元に戻る。] [0047] セルフタイム化(自動タイミング化)されているとはいえ、NANDゲート55に関連する追加の遅延、及び、ロードLUTを駆動することによる固有のオーバーヘッドが存在し、(これは)安全なマージンを提供する] [0048] この方法では、定常状態システムにおいて、全てのノードは、最も遅いノードの遅延を有する。ノードの遅延における任意の変更は、各サイクルごとに1つのクロックノードホップに伝播させる。変化率がクロックオーバーヘッド内に取り入れ可能である限り、これでも構わない。ある地点での電力供給における一時的なディップ(浸漬)は、その領域のタイミング回路により長い遅延を示させ、次のクロック周期を遅くする。メッシュは4つの周囲のクロックをもまた遅くする。電力ディップによって影響される回路によって発生した信号もまた遅い。この信号が隣接して接続されたメッシュの外側にあるクロックによってラッチされない限り、遅い信号は遅いクロックに適合する。] [0049] 各クロックノードは、グリッド又はHツリー分配スキームを通して、そのfクロックを論理ブロックの周囲のアレイに駆動する。分配チェーン(鎖)の段階数が小さく、全てのクロックがローカル(局所的)であるので、クロック歪みの形状が最小化される(例えば複数レベルのHツリーの極端なパスの差が排除される)。] [0050] ファブリッククロック信号は、ファブリッククロック信号の数をカウントするために各クロックノード50内のカウンタを使用するシステムクロックに関連付けられる。必要数に達すると、システムクロックの立ち上りが到達するまで、次のファブリッククロックは停止される。そしてこれがカウンタをリセットして、ファブリッククロックはもう一度イネーブルされる。] [0051] 別の可能な演算モード(セルフタイム化(self−timed))が存在する。ここで、適用される外部システムクロックが利用されず、その代わりにファブリッククロックは自身の時間で可能な限り速くサイクルする。回路は、作業に基づいたハンドシェイクシステムが可能になるように設計される。これは非常に電力効率が良い。タスクは完成して、システム及びファブリックネットワーク/メッシュは次のタスクが現れるまで停止する。] [0052] (ファブリックサイクルカウンタ) ある時点では、ファブリッククロックは、ファブリックサイクルカウントを制御することを必要とする。即ち、fクロックは、TS値0,1,2などと値を増加させる必要がある。これは、ファブリックフェーズ(fフェーズ)信号0,1,2などの形態で、必要な設定にアクセスするように設定メモリに適用される。図8(b)は、fクロックがfフェーズ信号であるfフェーズ0−3にどのように関係するのかを示す。これは、上位レベル(例えばクロックノード50)で、又は、LBそれ自体又はLUTの内部のような低位レベルで実行可能である。本実施形態では、各LB内のカウントを個別に制御することを可能とするようにLB内にカウンタが存在する。これは、16TSシステムにおいて、LBへ入力されるたった1つのファブリッククロックが存在し、それは、LB周囲に分配される16のfフェーズ信号を形成するようにLB内のカウンタに接続されている。] [0053] (システム設定) このようなTSスキームにおいて、アーキテクチャを決定づけるいくつかの基本的なポイントがある。 1.TSVがより高いほど、より高いゲート密度が可能になる。 2.TSVがより高いと、より低い全体の周波数が達成可能である。 3.ファブリックサイクルにつき1つのLUTが、好適な開始点であろう。なぜなら、より高い速度且つより低い電力の小さい信号回路デザインをイネーブルするからである。 従って、これらの基本的なポイントが与えられると、完全なファブリックシステムが以下に説明する手段で構築可能である。] [0054] (電力考察) より高度な論理密度を効果的に達成すると、所与のシステムに必要な面積を削減する。これは、低いスタンバイ(漏れ)電流が達成されることを意味する。また、(複数の)LUT自体がより高密度になると、それらの間の実効距離が小さくなる。だから、有効電力を省力する可能性がある。この密度改善による省力が、各ファブリックサイクル内の設定データを読み取る際に消費される追加の電力をカバーするのに十分であろうか?この問題に以下の解析によって答える。] [0055] TSスキームが4倍の密度に増加可能であることを想定すれば、典型的なトラック長は半分になるであろう。2つの論理回路(LB)71,72間の平均接続を考えてみよう。(TSスキームではない)標準のスキームでは、接続は「2×2ルート」スキームであり、即ち、2つのステップ73,74において接続された4つの論理ブロックからなる(図10参照)。全体長は、240μm×2=480μmである。TSスキームにおいて、4倍に増加した密度で、同じ2つの論理ブロック71,72間の平均ルート長は、(1又は2つのステップで接続されている(図10参照)2つの論理ブロックだけである。これは、240μmのトラック「電力」を省力する。従って、電力を節約するためには、マルチプレクサ設定データの読み取りは、240μmのトラックを駆動するよりも低い電力である必要がある。] 図10 [0056] TSスキームにおいて、システムクロックは、TS時間(TS times)をユーザクロックよりも速く動作させる。しかしながら、クロックは、TS時間少ないLBに亘って分配される必要がある。] [0057] どの程度のトラック相当の電力を、4ビットのマルチプレクサのデータを読み取り及びデコーディングが必要とするのであろうか?基本的には非常に多い。SRAMセルは、高い負荷を与える。なぜなら、それらは、ゲート接続される2つのアクセストランジスタを有するからである。また、従来のSRAMセルは異なるビットラインを有する。すなわち、アクセスにおいてビットライン(ビット線)がいつも推移する。] [0058] 1・16又は1・8のマルチプレクサの選択には、4又は3つのセルを必要とし、そして、4:16又は3:8のデコーダを必要とする。4つの従来の異なるビットラインSRAMセルの読み取りとは、4つのビットラインを駆動することを意味する。4つのセルのワードライン(ワード線)を駆動することは多くの電力を使用する。また、デコーダ自体が、多くのゲート接続を必要とし、多くの電力を消費する。単終端ビットラインを使用することさえ(即ち、平均で4から2へと移動する数を半分にする)、所望の目標を遥かに超える電力を消費させる。] [0059] 1つの解答は、別のメモリ技術を使用することである。フラッシュ電気的消去可能なロム(eeprom)は、少なくともSRAMの大きさの4分の1であり、例えば、0.13μmのNOR型フラッシュセルは0.4μm2である。] [0060] これは、マルチプレクサデータを1つのホットな形態に、範囲からの1ビットを1に設定して保存することを可能にし、デコーダの必要性を排除する。フラッシュセルはまた、より低いワードラインの容量を有する。なぜなら、それらは、1つだけのトランジスタを有し、且つ、より厚い酸化物を有するからである。全体的に、読み取りは210μmのトラックと大体同じ電力で実行されると予測される。] [0061] フラッシュはもちろん不揮発性であり、これはFPGAが分離起動PROMを要求しないという大きい利点を有する。また、フラッシュは、SRAMと比較して非常に小さい漏れ特性(即ち可能性としてはゼロ)を有する。しかしながら、複数のタスクを実行するために、又は、異なる演算モードに対処するために機能を変更するように、回路を迅速に再設定することができないという欠点がある。] [0062] 別の解答は、マルチプレクサのためにデコーダを記憶セル内に組み込むことである。この方法で、記憶セルの数が最小化され、1ビット線のみが移動し、マルチプレクサに直接的に接続可能である。ワード線によって駆動されるゲートの量も削減される(設定メモリの機能上の詳細は以下を参照)。フラッシュ処理に関連する、追加された複雑さ及びリスクにより、本発明の好ましい実施形態は、以下のアーキテクチャで構築される。] [0063] (ファブリックサイクルクロックを利用する:低電圧振幅スキーム) 好ましい実施形態では、ファブリックサイクルクロックは、省電力機構として使用される。これを実施する1つの方法は、時にはLVDS(低電圧差動振幅)として表されるLVS(低電圧振幅)のような低電圧信号スキームを使用することである。例えば、スキームは、以下で説明されている。 (ftp:download.intel.com/technology/itj/2004/volume08issue01/art04_lvs_technology/vol8iss1_art04.pdf)] [0064] ファブリックサイクルクロックによって駆動されるLB入力及びバッファ内のフリップ・フロップ(例えば図7の入力、Buf0−7)は、低電圧入力信号を感知するセンス増幅器になる。より良いノイズ耐性のために信号は差動(信号)である。これは、インターコネクトのTS特性がブロック間い非常に小さい信号密度が存在することを意味しているため、TSスキームへの理想的な適合であり、差動スキームの信号数を2倍にするのに十分以上の空間を許容する。] 図7 [0065] FPGAの高度の構造は、LVDSシステムに適する。トラックタイプ(by1,by2,by6...)の限定数は、全ての可能な組合せの注意深いシミュレーションが(Intelのソリューションの場合と同様に)複雑なEDAツールを作成する必要なしに内々に実行されること可能にする。] [0066] LVDスキームは、電力を節約し、ノイズを減少させる。電力は電圧の2乗関数であり、振幅の67%の削減は、90%の省電力につながる。] [0067] LUT及びマルチプレクサの導入は、また非常に単純化されている。図11(a)に示すとおり、LVS2:1のマルチプレクサ80の真数と補数の半分が単純に実行される。] [0068] LUTは、このようなマルチプレクサのツリーから構築可能である。LUT4は、2:1のマルチプレクサの4つの段階からなり、各段階は図4のようにLUT4 20への入力A,B,C,Dの1つによって選択される。差動マルチプレクサは、構造の2つのコピーを必要とし、1つは真数であり1つは補数である。このようなLVDSマルチプレクサは、半分のCMOSマルチプレクサのトランジスタを有し、PMOS装置を有さないので、無駄なウェル境界(well boundary)領域がないために面積が倹約される。] [0069] LVDSはまたXOR(排他的論理和)が得意であり、XOR演算回路に不可欠である。真数と補数のデータを単に選択的にスワッピング(交換)する。] [0070] 当然、ルーティングマルチプレクサはこのような構造から構成される。このように、ルーティングを介したLUTからセンス増幅器へのパス全体は、NMOSパスゲートを通過する。このことはLUTのゲート上の入力から受信センス増幅器での出力へ伝わる信号が低電圧であることを意味する。図11(b)は、信号パスを表す。] [0071] (アーキテクチャによる省電力) 別の実施形態では、異なる省電力技術を採用する。例えば、TSスキームにおける省電力のための別の方法は、時間ファンアウトを使用することである。2:1マルチプレクサとして設定された32の他のLUTの選択入力を駆動するANDゲートとして設定されるLUTについて考えてみよう。標準のアーキテクチャにおいて、これには33のLUTが必要であり、時間調節(タイミング)における余裕(slack)の有無に関わらず、おそらく複数のレベルのルーティングを使用して、選択信号はそれらの全てに影響を及ぼす必要がある。] [0072] TSスキームにおいて、時間調節に余裕がある場合、ファンアウトは空間と同様に時間に関して実施される。32のLUTは各々において8つのLUTを有する4つのファブリックサイクルに折り畳まれ、選択信号は9つのLUT(それらの1つが駆動LUTに折り畳まれている場合には8)に及びさえすればよい。] [0073] (実施:2フェーズルーティングスキーム) LVDSスキームは、プレチャージ(precharge)/均一化(equalise)された信号ラインを必要とする。これは、ルーティングスキーム(プレチャージ/均一化及び統合(integrate))への2つのフェーズが存在することを意味する。データのスループットを最大化するために、全てのルーティングが2フェーズでなければならない。それらを奇数(odd)、偶数(even)であるo及びeとする。フェーズeが統合状態にあるとき、フェーズoはプレチャージ/均一化の状態にあり、逆も同様である。] [0074] プレチャージ/均一化は、以下の2つの方法で達成可能である。 1.ルートはVss(負の電力源電圧)又はVdd(正の電力源電圧)にプレチャージ及び均一化される。 2.ルートの真数/補数は均一化される。中間点は2つの信号間のどこか(通常は丁度中間)で発見される。] [0075] 両方の選択肢が図12に図示されている(スキーム1は上方のグラフでフェーズE及びフェーズOにより表され、スキーム2は下方のグラフでフェーズE及びフェーズOにより示される)。第2の「均一化のみ」のスキームはさらに電力効率が良い。 ・3つの装置(2プレチャージ及び1均一化)とは対照的に、1つだけの均一化装置が駆動される。 ・真数及び補数ライン上の電圧振幅は半分になり、ラインにつき電力を4分の1にして、2つのラインがあるので電力全体を半分にする。] 図12 [0076] 統合フェーズの最後で、宛先論理ブロックの入力又はバッファのセンス増幅器がファイア(解除)される。センス増幅器の出力はラッチされ、センス増幅器自体がリセットされる。センス増幅器の内部ノードが均一化されるか、又は、均一化フェーズの間に入力ルートに接続されることは重要である。なぜなら、そうしないと、センス増幅器内の残余データは、次のセンス増幅器のファイア処理の結果に影響を与えうるからである。] [0077] 2つのフェーズルーティングスキームはプログラマブル論理回路の設定メモリ22、35で連結される。設定メモリも2つのフェーズにも分割されるので、全奇数のファブリックサイクル及び全偶数のファブリックサイクルのためのメモリが存在する。] [0078] フェーズeの均一化の間、フェーズeの次の設定はフェーズeの設定メモリから読み取られる。設定メモリのビットラインの移動速度はかなり遅いので、ファブリッククロックサイクル全体を必要とすることが考えられる。均一化の最後で、新しい設定が構築される。マルチプレックスのゲートがそれらの設定メモリによってイネーブルされるので、全構成ルートは接続されて、均一化装置(イコライザ)によって均一化される。] [0079] 統合フェーズに移動すると、均一化装置は停止し、信号がルート上に構築されることが許容される。この間、ルートを形成する全ての偶数メモリの全ビットラインの活性ビットラインは、ルートを保持し、信号の構築を確実にするように、高いままである。] [0080] 統合フェーズの最後で、偶数メモリビットラインは、低く下げられ、センス増幅器がファイアされる。ここで、可能性としては存在する次のビットラインの構築開始と同時に古いビットラインをリセットすることが必要であるという問題がある。2つの解答を以下に述べる。 1.奇数及び偶数の両方のメモリを2つに再度分割して、ダブル偶数(de−0,4,8)、シングル偶数(se−2,6,10)、ダブル奇数(3,7,11)及びシングル奇数(1,5,9)と命名される4つのメモリを有する。 2.リセットをセルフタイム化して、リセットが完了した後に新しい信号を構築させることのみを許容する。] [0081] (4フェーズルーティングスキーム) 別のアプローチは、時間に対する電圧のプロットである図13に説明される、4フェーズルーティングスキームを使用することである。このようなスキームは、以下の利点及び欠点を提供する。 (利点) ・センス増幅器をリセットする時間に余裕がある。 ・シングル/ダブル偶数又はシングル/ダブル偶数信号パスを1つに組み合わせる必要がなく、速度を増加させる。 (欠点) ・2フェーズスキームのルート数が2倍になる。 ・LUT回路が2倍になり、各フェーズにLUTが必要になる。] 図13 [0082] 実際には、全ルートを含む十分な空間がない場合、追加のメタル層が必要であり、それが問題である。また、LUT回路によって占められる面積が論理ブロック全体の状況において非常に大きい場合、LUT回路が2倍になることが問題である。] [0083] (入力及びルーティング設定メモリ) これらの設定メモリ25(前述の時分割入力セクションで解説)は、それらが領域の大部分を占領するので、アーキテクチャの非常に重要な要素である。図14は、1入力設定のエントリ又は列における基本回路を示す。] 図14 [0084] (センス増幅器(SA)なしにルーティングするためのデコーダ手段) この技術では、8つのデコードラインd0−d7を有するデコーダが、入力マルチプレクサ10を通してパスを選択するのに使用される。図14で示すように、エンコードされたデータEN0,EN1はメモリの列92に保存されて、その後、デコードツリーは、8つのデコードラインdのうちのどのデコードラインが、それらが含むデータを基にして、活性化されるかを選択する。デコードツリーは、それぞれEN0及びEN1によってイネーブルされるd0−3及びd4−7を生成するように、(メモリの列92の)セルD0及びD1の内容の真数及び補数のバージョンとなる。このように、状態量が最小化されるが、1のみのデコードラインが活性化される。] 図14 [0085] デコードラインdは、低位にプレチャージされる必要があり、アクセスされたときにプレチャージが放出され、選択されたデコードラインが立ち上がる。選択されていないデコードラインは低位のままであるが、低位に保持されてもいない。即ち、浮動低位である(この状態に長く存在せず、カップリング(結合)機構がシミュレーションによって排除されるのでこれは許容可能である)。] [0086] デコードラインのプレチャージは、デコードラインと同様にデコードされうる追加の選択ラインを使用して、設定エントリによって制御される。] [0087] 図15は、選択ラインの生成を示す。回路を生成する選択ライン及びデコードラインは、fフェーズにつき1つのエントリである設定エントリを作成するように結合する。ここで、選択ラインは高位にプレチャージされる。メモリ列92のセルD2によって選択された場合、ラインはグランドにディスチャージ(放電、解放)する。複数の選択ラインを有することで、それらが、複数のマルチプレクサ選択トランジスタを1つのデコードラインを逆多重化することを可能にする。このような逆多重化回路(デマルチプレクサ90)は図16で説明される。図16では、選択ラインs[0]が高位である場合、1つのマルチプレクサ装置0が選択される。また、他方の選択ラインs[1]が高位である場合、異なるマルチプレクサ装置1が選択される。デフォルトのプレチャージされた状態ではs[0]及びs[1]の両方が高位であるが、デコードラインd[7:0]がこの状況において高位ではないので、これは有効である。このデマルチプレクサ回路の欠点は、デマルチプレクサ上の電圧が、満状態のVdd(正の供給電圧)からVdd−Vtnに減少することである。Vtnは、nmos装置をオンにするしきい値電圧である。即ち、装置がオン状態になるためにゲート上で必要とする電圧である。] 図15 図16 [0088] 最高位の設定メモリは図17(a)に示されているとおりである(他の回路(図14−16)は図17(a)の最高位のメモリのサブ回路である)。この設計の消費電力を最小化することを確実にするように、様々なステップがとられる。 例えば、 ・選択ラインs[1:0]が複製され、デコードラインd[3:0]の左半分のen0、及び、右半分ラインd[7:4]のen1によって有効にされる。これは、図16のようなデマルチプレクサ90の半分のみが駆動され、残りの半分がアクティブデコーダラインを見ることを意味する。 ・デマルチプレクサは、選択ラインs[1:0]に直接的に接続されうる。これは、これらの振幅をVdd−Vtnからグランドレベルにまでに制限して電力を節約する。しかしながら、これも、マルチプレクサ装置が起動されるスピードを遅くする。] 図14 図16 [0089] 別の方法は、デマルチプレクサを使用する代わりにデコーダラインの数を2倍にし、1つだけの選択ラインを有することである。より簡易であるがより多くの面積を使用する。この方法はまた、より小さいマルチプレクサ(例えば、8:1)において使用されうる。この配置を有する最上位のルート設定メモリは図17(b)に示される。] [0090] (バッファ及び入力のためのデコーダ法) LUT入力及びバッファは、ルート化信号を検知するようにセンス増幅器を有する。これは図18に示されている。センス増幅器(SA)100は、設定メモリによって制御可能である。SAは、設定メモリがイネーブルされたエントリを読み取っているときにのみファイアされる。センス増幅器のイネーブルされた信号sae_nはセンス増幅器100をトリガー(始動)する。センス増幅器はまた、小振幅の入力がセンス増幅器自体によって駆動され、電力を浪費することを防止するように、入力信号92から絶縁(分離)されている必要がある。デコードラインD[7:0]は、第1のマルチプレクサ段階の選択として動作し、第2のマルチプレクサ段階として選択信号s[1:0]は分離信号として動作する。] 図18 [0091] 図19(a)に示された回路(sae_gen回路)は、アクティブな低位のセンス増幅器のイネーブルされた信号sae_nを生成する。設定メモリはまたsae_gen回路からの均一化信号をも制御する。均一化は、メモリがアクセスされたときにのみ起こる。しかし、信号が自由に統合可能であるように、均一化はリリース(解除)される必要があるので、反対のフェーズクロックであるCLK1(例えば、CLK0が偶数のフェーズクロックである場合、CLK1は奇数のフェーズクロック)が、均一化信号をキャンセルするのに使用される。均一化は、マルチプレクサの中間段階に適用されるので、2つの均一化信号(s[0]がイネーブルされているときに選択されたマルチプレクサの半分のeq[0]、及び、s[1]が選択されたときに半分のeq[1])が存在する。] [0092] 以下のさらなる電力削減の方法が適用可能である。 ・Vdd−Vtn付近の供給電圧が利用可能な場合、均一化NORゲート101、102が、制限振幅選択ラインに接続可能である。 ・そのゲートがvddに接続された状態で、各均一化信号の各選択ラインの分離NMOS103が、選択ラインs[1:0]の振幅を制限するように、より低い供給(例えば、Vddが通常1.2Vであるときに0.8V)にゲート接続可能である。] [0093] 入力設定メモリの最上位の図を図19(b)に示す。] [0094] 4フェーズルーティングスキームにおけるこれらの制御信号のタイミング図を、時間に対する電圧プロットである図20に示す。] 図20 [0095] (スタティック法) 他の実施形態で使用される別のアプローチは、スタティック(静的)設定メモリを使用することである。スタティック設定メモリの利点は、変更が必要ない場合にプレチャージ及び再評価における電力の浪費がないことである。このスキームは、高低いずれでも駆動可能であるセルに関する。図21に示した設定メモリセル110は、0又は1(Vdd)を、読み取りビットライン(rbl_t)に駆動可能である。標準の6TのSRAMセル上で3つの追加のトランジスタが使用され、面積の50%の増加が見込まれる。] 図21 [0096] スタティック法において、設定メモリの出力は、必要に応じて続くfサイクルで再使用されるように維持される。FPGA製造者の「place and routhe」ソフトウェアは、省電力機構としてこのような入力の再使用を目的としている。この機能を実行するために、読み取りワードラインは、出力が保持される限りに高位に保持されることを必要とする。これを実行するために、同じマルチプレクサメモリにおける別のイネーブルされたワードラインが起動され、別の出力を選択するまでラッチを使用して、イネーブルされたワードラインを維持する必要がある。] [0097] 図22(a)は、4エントリ設定メモリのエントリラッチを示す。エントリがイネーブルされる(即ち、イネーブルな設定を維持する)なら、ラッチはfフェーズ入力によって設定される。その結果生じる読み取りワードライン出力(rwl)は、スタティックセルからのデータを読み取り、且つ、他のエントリのイネーブルをリセットして、rwl信号を低位に移行させる。同様に、次のfサイクル上で、fフェーズn+1エントリがイネーブルされた場合、fフェーズnエントリをリセットするようにそのrwl信号を送信する。図22(b)は、完全な(完成した)設定メモリエントリがどのようにラッチ107、イネーブルされたセル108、及びスタティックデータセルCell0,Cell1,Cell2,Cell3によって構成されているかを示す。] [0098] 図23(a)に示すとおり、図19のsae_gen回路は、スタティック法に適用されることを必要とする。このスタティックスキームにおいて、sae_nは、低位に移行するclk0_n又は低位に移行するアクティブな低位選択ラインs_n[1:0]によって、高位に移行する。アクセスの最後で、センス(増幅器)がファイアされるべきときに、sae_nは、clk1_nの上昇によって、低位に移行する。次のサイクルがまた設定メモリにアクセスするなら、sae_nの下降の後に、新しいアクセスによる再度の上昇が続き、効果的にsae_n上でパルスを作成する。センス増幅器及び入力ルートの均一化は、均一化サイクルの後半においてsae_nが上昇した後、直ちに始動可能である。スタティック選択入力パスを介して、特定のルートを使用する別の信号を不測に均一化することを防止するように駆動されている入力信号の直前に、均一化信号は活性化される必要があるだけである。センス増幅器には、検知されたデータが失われないように、プレチャージされた構成のようなデータキャプチャ(捕捉)回路が続かなければならない。] [0099] 図23(b)は、スタティック入力設定メモリの最上位の図を示す。] [0100] (思想の組合せ) スタティック法の最大の問題は、列エントリの全体サイズである。列エントリ面積を削減するようにデコーダとスタティック法を組み合わせることが可能である。図25は、(円で囲まれた)デコーダセクション120がスタティックであり且つセルに統合されているデータセル118を示す。デコーダの別のコピーは、完全2:4デコードを作成するように、data_t[0]ノードに接続される。別のデータセル(図示せず)は、第2のデータ入力data_t[1]及びdata_c[1]を提供する。デコーダ120の領域は、データセルとほぼ同じであり、8つのトランジスタ121−128であり、121を除いた全NMOSであり、レイアウトをより簡単にする。残ったPMOS121も、(シミュレーションによって決定される)タイミングが許容するならそのゲートがdata_t[0]に接続された状態でNMOSに変換可能である。] 図25 [0101] (タイミング図) 2フェーズ実装におけるスタティック回路のタイミングは図26に図示されている。設定メモリの読み取りワードラインを駆動するfフェーズ信号はアクセスをトリガーする。選択ラインs[x]、s[y]及びデコードラインd[x]及びd[y]は、アドレス指定された列の内容によって上昇する。(sラインの1つが有効である)有効なアクセスが存在するように、clk0_nの下降はイコライザ(eq)及びsae_nを上昇させる。sae_nが高位に移行するとき、センス増幅器(SA)ノード及び入力信号ノードをリセットし、センス増幅器ノードがイコライザ(eq)によって均一化される。clk0_nが上昇するときに、イコライザは低位に移行するが、sae_nは高位のままである。なぜならclk1_nがそのとき低位であるからである。入力信号はそのとき、センス増幅器の入力に自由に統合可能である。clk1_nの上昇エッジは、sae_nを下降させ、センス増幅器をファイアし、入力信号を増幅する。] 図26 [0102] 次のサイクルは有効な列をアドレス指定すれば、選択ラインは同じままか、又は、新しいものが選択され、古いものが脱選択される。新しいサイクルにおけるclk0_nの下降エッジは、sae_n及びイコライザ信号を上昇させ、センス増幅器をリセットし、再度プロセスを開始する。センス増幅器の出力は、単時間有効であればよい。なぜなら、それらは、プレチャージされたデコーダ構造を駆動するからである。プレチャージされた構造がディスチャージするのに十分な時間を有する限り、データはキャプチャされる。] [0103] 図27は、本発明に使用されるセンス増幅器130を示す。この回路設定はしばしば、SRAM(しかし、通常はNMOS及びPMOSが転置された状態)において使用される。入力マルチプレクサからの差動入力信号は、センス増幅器ラッチ135の内部ノード134に伝えられる。センス増幅器はPMOS装置137を使用してファイアされ、且つ、センス増幅器のファイア後に生成された全レール信号がルートに及ぶことを防止するように、設定メモリ内の第2段階の入力マルチプレクサ装置は、選択ラインs[1:0]によって同時に閉じられる。センス増幅器内の交差連結(cross−coupled)PMOS136及びNMOS138は、高ゲイン増幅連結ステージ(段階)を提供する。最も重要な装置は、交差連結PMOS136であり、これらは、入力オフセットを減少させるように、厳密に適合される必要がある。] 図27 [0104] (LUTアーキテクチャ) LUT4のLVDSスキームは、4つの入力LUTツリー140を示す図28に類似しうる。各三角形(又は段階)は、垂直入力A,B,C,Dによって制御される2:1のマルチプレクサである。内部LUTノードは、(複数の)LUT段階をひとつに接続する(LUTノードは、後述する基本的に図28の三角形の頂点に存在する)。このスキームの欠点は、LUTデータから出力への非常に多くの連続するソース接続装置が存在することである。また、A入力は、16のマルチプレクサ(真数及び補数)に接続されるので多量のゲートに遭遇するであろう。] 図28 [0105] (LUTデコーダ) 別の可能なアーキテクチャは、図29に示すとおり、入力パス内でデコーダを使用することである。2つの入力(4つの出力LUTデコーダ)150、152は、センス増幅器の出力を受け取り、正しい出力データを選択するようにデコードされたラインでLUTを駆動する。これは、4つの入力LUT内のステージの数を4から2に削減する。各ステージは、2:1マルチプレクサの代わりに4:1マルチプレクサとなる。図29からのデコーダ及びLUTマルチプレクサの利用は、図30で図示されている。デコーダを使用することの利点は、LUTデータからLUT出力へのパス内のトランジスタの数が4から2に減少することであり、小信号出力をより迅速に構築することを可能にする。他のデコーダ構造が使用可能であり、例えば、4入力16出力デコーダは、LUTを単ステージ、16選択入力の1ホットマルチプレクサに減少させる。] 図29 図30 [0106] (LUTアーキテクチャ:LUTバッファリング) 全4つのフェーズにおいて、各LUTへの各入力A,B,C,Dに1つのバッファが提供される。バッファの数は変更可能である。バッファの数が少ないほど面積を節約するが、回路のルーティングを犠牲にする。回路の数が多いほど回路のルーティングがより簡単になるが、面積が増加する。バッファは多くの機能を有しており、重要度において以下のようにランク付けされる。 1.(すでに説明したとおり)正確な回路接続性がマップされるように追加の状態記憶を提供すること。 2.例えばLUT3において必要とされる追加の入力を提供すること。 3.マルチプレクサ及びスーパーLUTの設定における状態点にルートすること。(状態点(以下で説明する)はLUT設定メモリの出力であるLUT設定状態ノードである。)] [0107] バッファの接続性はすでに説明した。なされる設計選択の背後にある論拠の説明は以下の通りである。] [0108] バッファの主要な役割は、接続性に関わらず全回路がファブリックにマップされることを可能にするように状態記憶を提供することにある。バッファは、関連する入力の全ての他のフェーズにルーティング可能であることを必要とする。例えば、フェーズがp、q、r及びsで示される4フェーズルーティングスキームにおいて、(論理ブロック内のLUT構成を示す)図31に示される、フェーズpにおけるlut[0]、入力d、d[0]のためのバッファは、フェーズp(それ自身の入力)、q、r及びsのd[0]に接続可能である必要がある。] 図31 [0109] 同様に、時々、入力は値を受け取り、当該値は、次のフェーズの同じ入力内で使用されることを必要とする。これを処理する1方法は、第1サイクル内の入力及びバッファに送ることであり、そうすれば次のサイクルの入力は、バッファから値を得る。あるいは、その接続が入力マルチプレクサ上で利用可能であれば、入力は前のフェーズからの入力センス増幅器の出力からデータを受信可能である。これは省電力であるから好ましく、3つではなく2つだけのセンス増幅器がファイアされる。] [0110] (LUTファンアウトバッファリング) LB内のA LUT入力(bufa[3:0])に接続されたバッファは、LB内の他のLUTへのファンアウト機能を有する。これはファンアウトバッファとして知られている。ファンアウトバッファは独自の状態の記憶を有する。全ての入力は、ファンアウトバッファをLB内の1つの他のLUT又は他の3つのLUTに接続していることを示すと遭遇することができる。] [0111] 以下の表2は、ファンアウトバッファ信号源を定める。] [0112] どのように信号が入力A,B,C,Dに接続するかは表3に定められている。] [0113] よって、bufa[0]から生じる信号buffo4[0]は、LB内の全4つのA入力にファンアウト(論理出力)可能である。同様に、bufa[2]からのbuffo2[1]は、lut0及び1のC、並びに、lut2及び3のBに接続可能である。] [0114] (バッファの概要) バッファ構造は、入力マルチプレクサ及びセンス増幅器並びにバッファマルチプレクサ及びセンス増幅器の実施形態を示す図32に概略的に図示されている。入力マルチプレクサへの入力の1つはバッファ状態から生じる。バッファマルチプレクサの半分は、バッファ状態(センス増幅器)に入力を提供する。他の半分は、(後述する)マルチプレクサ拡張部に入力を提供する。] 図32 [0115] (LUT拡張部) 複数の機能は、例えば、拡張ルックアップテーブルなどのようなLUT拡張マルチプレクサを介して利用可能である。] [0116] (拡張ルックアップテーブル) 隣接するLUTが結合可能であるようにLUT階層を追加することができる。これは図33に示され、円で囲まれた4:1マルチプレクサ拡張部200が、生成されるべき、より大きいLUT構造をイネーブルにするように加えられている。ここで、4つのLUT4は、LUT6を生成するようにマルチプレクサ拡張部200に結合される。LUT出力LUT0,LUT1,LUT2,LUT3は、この統合フェーズ内のLUT入力A−Dに接続されるバッファを介して、マルチプレクサデータ入力Da[3:0]に接続される。マルチプレクサ選択信号は、先行する駆動フェーズからのバッファから生じる。] 図33 [0117] (部分ルックアップテーブル) 多くの大きい論理機能(例えば、4入力を超える5以上)は、1又はおそらく2の信号によって統制されるイネーブル装置として、追加の入力を使用する。これは、部分論理ツリーとして実行可能であり、即ち、コーンの1つのセクション(ブランチ)がいつも同じ値(0又は1)に戻る場合に回路が完全な論理コーン(ツリー)に提供されることを必要としない。] [0118] 図33で図示するインフラストラクチャ(基盤)は、また、部分ツリー論理を提供するのに使用可能である。これを実行するのに、(センス増幅器のラッチではなく)バイパスの通路内のバッファマルチプレクサへの入力として0及び1を追加する必要がある。これによって、マルチプレクサデータ入力Da[3:0]を0又は1に接続され、部分LUTの状態値として働かせる。] 図33 [0119] (マルチレベル拡張LUT) 図35に示すとおり、この思想は、複数のマルチプレクサ4:1構造にも拡張可能である。これは拡大部分ツリーを生成する。タイミングの理由で、これを最大許容構造とすることを提案する。] 図35 [0120] (拡張部分LUTの留意点) 拡張部分LUTは、連鎖(チェイニング)LUTとは混同されるべきでない。LUTの連鎖は、1つのLUTの出力から別のもの(即ち、LUT状態点でなくA,B,C又はD入力)への接続を暗示する。しかしながら、部分ツリーLUT構造にマッピング可能である1つの拡大された複合ゲートとして結合されたゲートを考慮することにより、同じ効果を奏することが可能である。設定によっては、LUT状態点への複数の接続が必要とされようが、これはシングル及び/又はダブル拡張におけるマルチプレクサデータ入力Da[3:0]に接続した複数のLUTを暗示する。] [0121] (マルチプレクサ) マルチプレクサ拡張部は、4:1マルチプレクサとして使用可能である。これを可能にするLUT内の入力及び出力リソースは、LUT4として(同一LUT内において)は平行して実行されうる。] [0122] (LUTとしてのマルチプレクサ拡張部) マルチプレクサ拡張部は、LUTとして設定可能である。4:1マルチプレクサは、マルチプレクサデータ入力Da[3:0]を適切な0/1へと駆動することにより、LUT2として働くことが可能である。説明しているように、1以上のマルチプレクサデータ入力Da[3:0]ピンに信号を接続することにより、LUT3に相当する3入力マルチプレクサlutとして働くこともできる。] [0123] (マルチプレクサ拡張部の概要) 拡張マルチプレクサは以下のモードで使用可能である。 1.他のLUTに接続されている完全LUT5/6拡張:全ての適用可能なDa[3:0]ピン。 2.バイナリ状態の必要とされる組み合わせ又は他のLUTに接続されている部分LUT5/6拡張:Da[3:0]。 3.2つの拡張マルチプレクサのキャスケード(転送)によるLUT7/8の完全及び部分バージョン。 4.キャスケードによる:2:1、3:1、4:1及び5:1から16:1までのマルチプレクサとして。 5.Da[3:0]をバイナリ状態に接続することによるLUT2として。 6.Da[3:0]をバイナリ状態及び/又は第3入力に接続することによるマルチプレクサLUT3として。] [0124] (特徴及び入力の選択) 説明した特徴の多くは、LUTノードから出力へ又は入力からLUTノードへのいずれかの複数のパスを示す。利用可能なパスをどのように選択するのであろうか?入力からセンス増幅器へのパス上のトランジスタの数を最小化することが望まれている。なぜなら、これはルート上の信号統合の速度に大きな影響を与えることができがちである。これに留意して、入力を複製することが最善の解決である。例えば、図33において、2つの可能なOut0への接続が存在する。一方はLUT4出力LUTノードであり、他方はLUT5出力LUTノードからである。図34は、正しい選択ラインを可能にすることによってどのようにLUT4又はLUT5のいずれかがOut0に接続可能であるかを示す。LUT4が必要な場合、LUT4のイネーブル信号は1に設定され、LUT5のイネーブル(信号)は0に設定される。これは、LUT入力DがLUT設定データの(最)上位(ビット15から8)又は(最)下位(ビット7から0)のいずれかを選択することを可能にする。入力LUT5のイネーブル(信号)が1に設定され、且つ、反対にLUT4の有効(信号)が0に設定されたら、LUT4が再度作成されるところに別のパスが存在するが、それはbuf_t/c入力がLUT5を作成するように第5のLUT入力として働くさらなる選択ステージ(段階)に接続する。最後のLUT5の選択トランジスタは出力Out0に接続する。] 図33 図34 [0125] (LUT設定メモリ) LUTは全fサイクルに再設定される。省電力化するために、次のLUTの設定が先の設定と同一又は部分的に同一であるなら、メモリを再読み取りしてビットラインを移動させる必要がないことは有利である。この目的を達するためには、スタティック法が最善である。必要な場合にのみ設定メモリの出力が変更される。] [0126] 図21のスタティックマルチプレクサメモリに使用されるようなセルは、スタティックLUT設定メモリにとって理想的である。] 図21
权利要求:
請求項1 複数のプログラマブル論理要素及び複数のプログラマブルインターコネクト手段と、前記論理要素及び前記インターコネクト手段の設定を保存するためのメモリ手段と、を備え、前記メモリ手段は、前記各論理要素の多数の異なる設定を保存するように形成及び構成されていることを特徴とするプログラマブル論理回路。 請求項2 前記メモリ手段は、前記各インターコネクト手段の多数の異なる設定を保存するように形成及び構成されていることを特徴とする請求項1に記載のプログラマブル論理回路。 請求項3 複数のプログラマブル論理要素及び複数のプログラマブルインターコネクト手段と、前記論理要素及び前記インターコネクト手段の設定を保存するためのメモリ手段と、を備え、前記各論理要素の多数の異なる設定が前記メモリ手段に保存されることを特徴とするプログラマブル論理回路。 請求項4 前記メモリ手段は、前記インターコネクト手段の多数の異なる設定を保存することを特徴とする請求項3に記載のプログラマブル論理回路。 請求項5 当該プログラマブル論理回路に適用されるシステムクロック信号を修正クロック信号に変換するための手段をさらに備えることを特徴とする請求項3又は4に記載のプログラマブル論理回路。 請求項6 前記システムクロック信号を変換するための前記手段は、前記プログラマブル論理回路の前記システムクロックのサイクルを所定の数のサブサイクルに分割もすることを特徴とする請求項5に記載のプログラマブル論理回路。 請求項7 前記各サブサイクルには数字が割り当てられ、前記論理要素のそれぞれ異なる保存された設定がそれぞれのサブサイクル番号に相関されることを特徴とする請求項6に記載のプログラマブル論理回路。 請求項8 特定の設定を読み取り、前記サブサイクルに応じて前記相関する論理要素を設定するため、前記特定の設定に関連付けられた前記サブサイクル番号に関係するファブリックフェーズ信号によって、前記論理要素及び前記インターコネクト手段の設定を保存する前記メモリ手段をアドレス指定するように形成及び構成されていることを特徴とする請求項7に記載のプログラマブル論理回路。 請求項9 前記インターコネクト手段はインターコネクトブロックを備えることを特徴とする請求項3から7のいずれか一項に記載のプログラマブル論理回路。 請求項10 前記サブサイクルに相関された前記インターコネクトブロックの設定を読み取り、前記サブサイクルに応じて前記インターコネクトブロックを設定するために、前記インターコネクトブロックのそれぞれ異なる保存された設定は、それぞれサブサイクル番号に関連付けられ、当該プログラマブル論理回路は、サブサイクル番号に関係するファブリックフェーズ信号により前記インターコネクトブロックの設定を保存するためのメモリ手段をアドレス指定するように形成及び構成されていることを特徴とする請求項9に記載のプログラマブル論理回路。 請求項11 前記論理要素及びインターコネクトブロックの設定を保存する前記メモリ手段は、スタティック設定メモリを備えることを特徴とする請求項3から10のいずれか一項に記載のプログラマブル論理回路。 請求項12 前記論理要素及び前記インターコネクトブロックの設定を保存する前記メモリ手段は、さらにデコーダを備えることを特徴とする請求項11に記載のプログラマブル論理回路。 請求項13 前記論理要素はルックアップテーブルを備えることを特徴とする請求項3から12のいずれか一項に記載のプログラマブル論理回路。 請求項14 システム内の前記ルックアップテーブルは、前記サブサイクルのための前記ルックアップテーブルの設定を提供する、各サブサイクルのためのエントリを有する記憶メモリを備えることを特徴とする請求項1から13のいずれか一項に記載のプログラマブル論理回路。 請求項15 前記プログラマブル論理回路はさらにバッファ手段を備えることを特徴とする請求項1から14のいずれか一項に記載のプログラマブル論理回路。 請求項16 前記バッファ手段は、それぞれのルックアップテーブルにつき1以上の追加の記憶レジスタを備えることを特徴とする請求項14に記載のプログラマブル論理回路。 請求項17 前記ファブリッククロック手段は、当該プログラマブル論理回路のファブリックに亘って分配される複数のクロックノードを備えることを特徴とする請求項5から16のいずれか一項に記載のプログラマブル論理回路。 請求項18 前記ファブリックのクロック手段は省電力機構として使用されるように設定されていることを特徴とする請求項5から17のいずれか一項に記載のプログラマブル論理回路。 請求項19 前記省電力機構は、低電圧振幅のような低電圧信号伝達スキームを備えることを特徴とする請求項18に記載のプログラマブル論理回路。 請求項20 複数の論理要素及び複数のインターコネクト手段と、前記論理要素及び前記インターコネクト手段の設定を保存するためのメモリ手段を備えるプログラマブル論理回路を演算する方法であって、前記メモリ手段内の前記各論理要素の多数の異なる設定を保存することを含むことを特徴とする方法。 請求項21 各前記インターコネクト手段の多数の異なる設定は前記メモリ手段に保存されることを特徴とする請求項20に記載の方法。 請求項22 添付した図に記載のプログラマブル論理回路。 請求項23 添付した図に関して記載されたプログラマブル論理回路を演算する方法。
类似技术:
公开号 | 公开日 | 专利标题 US9276572B2|2016-03-01|Configuration context switcher with a latch EP3080719B1|2020-08-05|Memory arrangement for implementation of high-throughput key-value stores US6184709B1|2001-02-06|Programmable logic device having a composable memory array overlaying a CLB array Agrawal et al.1999|An innovative, segmented high performance FPGA family with variable-grain-architecture and wide-gating functions JP3471088B2|2003-11-25|改良されたプログラマブル論理セルアレイアーキテクチャ US5490074A|1996-02-06|Constant delay interconnect for coupling configurable logic blocks US6311200B1|2001-10-30|Reconfigurable program sum of products generator Trimberger et al.1997|A time-multiplexed FPGA US6650142B1|2003-11-18|Enhanced CPLD macrocell module having selectable bypass of steering-based resource allocation and methods of use US6864710B1|2005-03-08|Programmable logic device US8294490B1|2012-10-23|Integrated circuit and method of asynchronously routing data in an integrated circuit US5986470A|1999-11-16|Programmable logic array integrated circuit devices KR100944179B1|2010-02-25|데이터 교환 장치 Perissakis et al.1999|Embedded DRAM for a reconfigurable array KR100439272B1|2004-07-07|데이터 전송 지연 시간이 짧은 반도체 메모리 장치 US6181163B1|2001-01-30|FPGA integrated circuit having embedded SRAM memory blocks and interconnect channel for broadcasting address and control signals US5834947A|1998-11-10|Microcontroller accessible macrocell US7788558B2|2010-08-31|Semiconductor integrated circuit and control method thereof US7126372B2|2006-10-24|Reconfiguration port for dynamic reconfiguration—sub-frame access for reconfiguration JP2500740B2|1996-05-29|デュアルポ―トメモリ USRE39510E1|2007-03-13|FPGA integrated circuit having embedded sram memory blocks with registered address and data input sections JP4800548B2|2011-10-26|集積回路論理要素 US6049487A|2000-04-11|Embedded static random access memory for field programmable gate array US7199608B1|2007-04-03|Programmable logic device and method of configuration US9490035B2|2016-11-08|Centralized variable rate serializer and deserializer for bad column management
同族专利:
公开号 | 公开日 GB0803636D0|2008-04-02| US8390319B2|2013-03-05| US20110031999A1|2011-02-10| EP2250730A1|2010-11-17| WO2009106814A1|2009-09-03| GB2457912A|2009-09-02|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题
法律状态:
优先权:
[返回顶部]
申请号 | 申请日 | 专利标题 相关专利
Sulfonates, polymers, resist compositions and patterning process
Washing machine
Washing machine
Device for fixture finishing and tension adjusting of membrane
Structure for Equipping Band in a Plane Cathode Ray Tube
Process for preparation of 7 alpha-carboxyl 9, 11-epoxy steroids and intermediates useful therein an
国家/地区
|